home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Games / MAME / src / sound / segapcm.h < prev    next >
C/C++ Source or Header  |  2000-04-04  |  2KB  |  77 lines

  1. /*********************************************************/
  2. /*    SEGA 8bit PCM                                      */
  3. /*********************************************************/
  4.  
  5. #ifndef __SEGAPCM_H__
  6. #define __SEGAPCM_H__
  7.  
  8.  
  9. /************************************************/
  10. #define   BANK_256    (11)
  11. #define   BANK_512    (12)
  12. #define   BANK_12M    (13)
  13. #define   BANK_MASK7    (0x70<<16)
  14. #define   BANK_MASKF    (0xf0<<16)
  15. #define   BANK_MASKF8   (0xf8<<16)
  16.  
  17. #define   SEGAPCM_MAX    (16)
  18. enum
  19. {
  20.     L_PAN = 0,
  21.     R_PAN = 1,
  22.     LR_PAN = 2
  23. };
  24.  
  25.  
  26. typedef struct segapcm
  27. {
  28.     char  writeram[0x1000];
  29.  
  30.     unsigned char  gain[SEGAPCM_MAX][LR_PAN];
  31.     unsigned char  addr_l[SEGAPCM_MAX];
  32.     unsigned char  addr_h[SEGAPCM_MAX];
  33.     unsigned char  bank[SEGAPCM_MAX];
  34.     unsigned char  end_h[SEGAPCM_MAX];
  35.     unsigned char  delta_t[SEGAPCM_MAX];
  36.  
  37.     int            vol[SEGAPCM_MAX][LR_PAN];
  38.  
  39.     unsigned int   add_addr[SEGAPCM_MAX];
  40.     unsigned int   step[SEGAPCM_MAX];
  41.     int   flag[SEGAPCM_MAX];
  42.     int   bankshift;
  43.     int   bankmask;
  44.  
  45.     int pcmd[SEGAPCM_MAX];
  46.     int pcma[SEGAPCM_MAX];
  47. } SEGAPCM;
  48.  
  49. struct SEGAPCMinterface
  50. {
  51.     int  mode;
  52.     int  bank;
  53.     int  region;
  54.     int  volume;
  55. };
  56.  
  57. enum SEGAPCM_samplerate
  58. {
  59.     SEGAPCM_SAMPLE15K,
  60.     SEGAPCM_SAMPLE32K
  61. };
  62.  
  63. /**************** prottype ****************/
  64. int SEGAPCM_sh_start( const struct MachineSound *msound );
  65. void SEGAPCM_sh_stop( void );
  66. void SEGAPCM_sh_update( void );
  67.  
  68. int SEGAPCMInit( const struct MachineSound *msound, int banksize, int mode, unsigned char *inpcm, int volume );
  69. void SEGAPCMShutdown( void );
  70. void SEGAPCMResetChip( void );
  71. WRITE_HANDLER( SegaPCM_w );
  72. READ_HANDLER( SegaPCM_r );
  73.  
  74. /************************************************/
  75. #endif
  76. /**************** end of file ****************/
  77.